import javafx.scene.input.DataFormat;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author LIBOFEI
 * @ClassName SortQueue
 * @description 一些基本排序
 * @date 2021/2/19 17:08
 * @Version 1.0
 **/
public class SortQueue {

    public static void main(String[] args) {
        //冒泡排序
//        maoPaoPaixu();
//        Long endTime = 1674959170L;//2023-01-17 23:59:59
//        Long current = System.currentTimeMillis() / 1000;
//        Long day = (endTime - current ) / (60 * 60 * 24);
//        System.out.println(day);
//        Long endTime = 1675526399L;
//        System.out.println(new SimpleDateFormat("yyyy年MM月dd日").format(new Date(endTime * 1000)));
        //小写字母开头  禁止以中划线结尾
        String regEx = "^[a-z][a-z0-9-]+[a-z0-9]$";
        Pattern pattern = Pattern.compile(regEx);
        Matcher matcher = pattern.matcher("songbp");
        System.out.println(matcher.matches());

    }


    /**** *
     * 冒泡排序 两两交换，大的放到后面，经过第一次排序后最大值已经在末尾，因为两两交换，需要n-1次循环(10个数9次循环)
     * 外层循环控制排序的躺数，内层循环控制比较的次数，每次过后，比较的次数都应该要减1
     * @author LIBOFEI
     * @date 17:09 2021/2/19
     * @return void
     * @Version  1.0
    **/
    public static void maoPaoPaixu(){

        int[] array = {1,4,5,6,8,7,4,3,2,0,10};

        int temp;//临时变量

        int isChange;//记录是否发生置换，0 没有发生 1 发生置换

        int num = 0;//记录执行了多少趟

        for (int i = 0 ; i < array.length - 1; i++){

            //比较一趟就恢复默认值
            isChange = 0;

            for(int j = i ; j < array.length - j - 1 ; j++){

                if (array[j] > array[j + 1]){
                    temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;

                    isChange = 1;
                }
            }
        }
        System.out.println(Arrays.toString(array));
    }

}
